package com.hyt.it.ogt.kq.service.gov.service;

import java.io.IOException;
import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hyt.it.ogt.kq.service.gov.model.entity.BaseDataPackage;
import com.hyt.it.ogt.kq.service.gov.model.entity.ExamPackage;
import com.hyt.it.ogt.kq.service.gov.model.vo.basepackage.BaseDataPackageVO;

/**
 * <p>
 * 文件数据包表 服务类
 * </p>
 *
 * @author huangyh
 * @since 2021-03-08
 */
public interface IExamPackageService extends IService<ExamPackage> {

    /**
     * 插入文件包表
     * @param examPackage 文件包信息
     * @return 是否成功
     */
    boolean add(ExamPackage examPackage);

    /**
     * 通过考试任务编号获取考试任务数据包信息
     * @param taskCode 考试任务编号
     * @return 考试任务数据包信息
     */
    List<ExamPackage> listByTaskCode(String taskCode);

    /**
     * 生成基础数据包
     * @param taskId
     * @throws IOException
     */
    void generateBaseDataPackage(String taskId) throws IOException, Exception;

    /**
     * 删除基础包
     * @param id
     */
    void deleteBaseDataPackageByTaskId(String id);


    /**
     * 获取基础包下载URL
     * @param taskId
     * @return
     */
    String getBaseDataPackageUrl(String taskId);

    /**
     * 查询基础包
     * @param taskId
     * @return
     */
    BaseDataPackageVO queryBaseDataPackage(String taskId);

    /**
     * 复制基础包数据
     * @param newTaskId 新考试任务id
     * @param oldTaskId 旧考试任务id
     */
    void copyBaseDataPackage(String newTaskId, String oldTaskId);

    /**
     * 根据考试任务编号获取基础包信息
     * @param taskCode 考试任务编号
     * @return 基础包信息
     */
    BaseDataPackage getBaseDataPackageByTaskCode(String taskCode);

}
